home *** CD-ROM | disk | FTP | other *** search
/ Komputer for Alle 1999 #6 / 1999 CD 6 (Red).iso / Strategy / warzone / disk1 / data1.cab / Program_Executable_Files / script / text / tutorial3.slo < prev   
Encoding:
Text File  |  1998-12-03  |  18.2 KB  |  773 lines

  1. /* Tutorial Script (Revised version) */
  2.  
  3. //variables
  4. private    INT    t;    //keeps track of how far player is in tutorial
  5. private    INT    n;    //holds number of droids built
  6. public    int    startPower;    //initial power level
  7.  
  8.  
  9. //level
  10. public    LEVEL            NextLev;
  11. //public    INTMESSAGE        MissionBrief;
  12.  
  13. //components
  14. public    SENSOR                defaultSensor;
  15. public    BODY                viperBody;        
  16. public    BODY                howitzerBody;    
  17. public    BODY                missileBody;        
  18. public    BODY                trikeBody;        
  19. public    BODY                buggyBody;        
  20. public    BODY                babaBody;        
  21.  
  22. public    CONSTRUCT            spade;            
  23.  
  24. // public    ECM                    ecm;                
  25.  
  26. public    PROPULSION            wheeledProp;        
  27. public    PROPULSION            trackProp;        
  28. public    PROPULSION            babaProp;        
  29.  
  30. //tutorial specific
  31. public    TEXTSTRING            buildPowerGenMsg;
  32. //public    DROIDID                constructorDroid;
  33. private    DROID                selDroid;    //selected droid
  34. public    STRUCTURESTAT        powerGen;        
  35. public    STRUCTURE            commandCentre;
  36. public    STRUCTURE            factoryStruc, researchStruc;
  37.  
  38. public    TEXTSTRING            increaseBuildRate;
  39.  
  40. public    STRUCTURESTAT        oilDerrick;        
  41. public    TEXTSTRING            buildResEx;
  42. public    FEATURE            res1;
  43. //public    INTMESSAGE        res1Msg;
  44. public    TEXTSTRING            scoutMsg;
  45.  
  46. private    FEATURE                hiddenArtefact;
  47. public    FEATURESTAT            crate;
  48. public    TEXTSTRING            artefactFoundMsg;
  49. public    TEXTSTRING            artefactRecoverMsg;
  50. public        int        art1X, art1Y;
  51. public        INTMESSAGE    art1Msg;
  52.  
  53. public    TEXTSTRING            buildResearchMsg;
  54. public    STRUCTURESTAT        research;        
  55. public    TEXTSTRING            researchArteMsg;
  56.  
  57. public    RESEARCHSTAT            artefact;
  58. public    TEXTSTRING            designMsg;
  59. public    STRUCTURESTAT        factory;            
  60. public    TEXTSTRING            buildFactoryMsg;
  61.  
  62. public    TEXTSTRING            buildDroidMsg;
  63. public    TEXTSTRING            assignDPMsg;
  64. public    TEXTSTRING            prodRunMsg;
  65.  
  66. public    TEXTSTRING            wellDoneMsg;
  67.  
  68. public    WEAPON                mg;
  69.  
  70. //public    TEXTSTRING            factoryRPL;
  71. public    TEXTSTRING            tutorialWAV;
  72. public    TEXTSTRING            gameWAV;
  73.  
  74. public    TEXTSTRING            des_msg0, des_msg1, des_msg2, des_msg3;
  75. public    TEXTSTRING            des_msg4, des_msg5, des_msg6, des_msg7;
  76. public    TEXTSTRING            bld_msg1;
  77.  
  78. // audio
  79. public    SOUND                SND_CLICK_BUILD;
  80. public    SOUND                SND_USE_2ND_CONST1;
  81. public    SOUND                SND_USE_2ND_CONST2;
  82. public    SOUND                SND_USE_2ND_CONST3;
  83. public    SOUND                SND_BUILD_RES_EX1;
  84. public    SOUND                SND_BUILD_RES_EX2;
  85. public    SOUND                SND_BUILD_RES_EX3;
  86. public    SOUND                SND_BUILD_RES_EX4;
  87. public    SOUND                SND_SCOUT_TO_WEST;
  88. public    SOUND                SND_ARTIFACT_DIS;
  89. public    SOUND                SND_RECOVER_ART;
  90. public    SOUND                SND_BUILD_RES_1;
  91. public    SOUND                SND_BUILD_RES_2;
  92. public    SOUND                SND_BUILD_RES_3;
  93. public    SOUND                SND_RES_ART1;
  94. public    SOUND                SND_RES_ART2;
  95. public    SOUND                SND_RES_ART3;
  96. public    SOUND                SND_RES_ART4;
  97. public    SOUND                SND_DESIGN_WAR;
  98. public    SOUND                SND_BUILD_FAC1;
  99. public    SOUND                SND_BUILD_FAC2;
  100. public    SOUND                SND_BUILD_FAC3;
  101. public    SOUND                SND_MANU_WAR1;
  102. public    SOUND                SND_MANU_WAR2;
  103. public    SOUND                SND_MANU_WAR3;
  104. public    SOUND                SND_MANU_WAR4;
  105. public    SOUND                SND_SET_PROD1;
  106. public    SOUND                SND_SET_PROD2;
  107. public    SOUND                SND_SET_PROD3;
  108. public    SOUND                SND_SET_PROD4;
  109. public    SOUND                SND_BUILD_POWERGEN1;
  110. public    SOUND                SND_BUILD_POWERGEN2;
  111. public    SOUND                SND_BUILD_POWERGEN3;
  112. public    SOUND                SND_BUILD_POWERGEN4;
  113. public    SOUND                SND_BUILD_POWERGEN5;
  114. public    SOUND                SND_ASSIGN_DELPOINT;
  115. public    SOUND                SND_MISSION_SUCCESS;
  116.  
  117. //proximity messages
  118. public    SOUND                SND_GEN_ART_HERE;
  119. public    SOUND                SND_RESO_HERE;
  120. public    SOUND                SND_DROIDS_REQ;
  121. public    SOUND                SND_FRIEND_LZ;
  122. public    SOUND                SND_ENEMY_LZ;
  123.  
  124. //Design screen buttons
  125. public    int    NEWDESIGN_BUT, TURRET_BUT, BODY_BUT, PROP_BUT;
  126. public    int    WEAP_BUT, SYS_BUT, COMM_BUT;
  127.  
  128. //triggers
  129. trigger droidSelTrig(CALL_DROID_SELECTED, ref selDroid);
  130. trigger droidHelpTrig((selDroid.order==DORDER_HELPBUILD), 5);
  131. trigger droidHelpTrig2((selDroid.order==DORDER_NONE), 5);
  132. trigger tutorialTrigger(every,10);
  133. trigger beingBuilt(structureBeingBuilt(powerGen, 0), 10);
  134. trigger derrickBeingBuilt(structureBeingBuilt(oilDerrick, 0), 10);
  135. trigger inRange(droidInRange(0, hiddenArtefact.x,hiddenArtefact.y, 384), 5);
  136. trigger nextTo(droidInRange(0, hiddenArtefact.x,hiddenArtefact.y, 171), 5);
  137. trigger researchBeingBuilt(structureBeingBuilt(research, 0), 10);
  138. trigger factoryBeingBuilt(structureBeingBuilt(factory, 0), 10);
  139.  
  140. trigger runDone((n>=1), 10);    //Only build one for now((n>=3), 10);
  141. trigger endVid(wait, 10);    //changed for DEMO (CALL_VIDEO_QUIT);
  142. trigger droidDesigned(CALL_DROIDDESIGNED);
  143.  
  144. /*
  145. trigger powGenBuilt(CALL_POWERGEN_BUILT);
  146. trigger resExBuilt(CALL_RESEX_BUILT);
  147. trigger researchBuilt(CALL_RESEARCH_BUILT);
  148. trigger researchDone(CALL_RESEARCHCOMPLETED);
  149. trigger droidDesigned(CALL_DROIDDESIGNED);
  150. trigger factoryBuilt(CALL_FACTORY_BUILT);
  151. trigger droidBuilt(CALL_DROIDBUILT);
  152. */
  153.  
  154. trigger manurunTrig(CALL_MANURUN);
  155. trigger manulistTrig(CALL_MANULIST);
  156. trigger buildlistTrig(CALL_BUILDLIST);
  157. trigger buildgridTrig(CALL_BUILDGRID);
  158. trigger researchlistTrig(CALL_RESEARCHLIST);
  159. trigger desTrig(CALL_BUTTON_PRESSED, IDRET_DESIGN);
  160. trigger newdesTrig(CALL_BUTTON_PRESSED, NEWDESIGN_BUT);
  161. trigger turretTrig(CALL_BUTTON_PRESSED, TURRET_BUT);
  162. trigger turretTrig2(CALL_DESIGN_WEAPON);
  163. trigger bodyTrig(CALL_BUTTON_PRESSED, BODY_BUT);
  164. trigger bodyTrig2(CALL_DESIGN_BODY);
  165. trigger propTrig(CALL_BUTTON_PRESSED, PROP_BUT);
  166. trigger propTrig2(CALL_DESIGN_PROPULSION);
  167. trigger desQuit(CALL_DESIGN_QUIT);
  168. trigger prodrunTrig(CALL_BUTTON_PRESSED, IDRET_MANUFACTURE);
  169. trigger prodrunTrig2(not(structureIdle(factoryStruc)), 5);
  170. trigger researchartTrig(not(structureIdle(researchStruc)), 5);
  171.  
  172. event researchArt3;
  173. //event productionRun2;    //disabled until sorted
  174. //event productionRun3;    //disabled until sorted
  175. event designWarDroid2;
  176. event designWarDroid3;
  177. event buildResearch2;
  178. event researchArt2;
  179. event buildFactory2;
  180. event manuDroid2;
  181.  
  182. event initialisedEvent;
  183. event buildPowGen;
  184. event buildPowGen2;
  185. event buildPowGen3;
  186. event helpBuild;
  187. event helpBuild1;
  188. event helpBuild2;
  189. event helpBuild3;
  190. event buildDerrick;
  191. event scoutWest;
  192. event artFound;
  193. event buildResearch;
  194. event researchArt;
  195. event designWarDroid;
  196. event buildFactory;
  197. event manuDroid;
  198. //event productionRun;    //disabled until sorted
  199. event endTutorial;
  200.  
  201.  
  202. event initialisedEvent(CALL_GAMEINIT)
  203. {
  204. //full briefing hard coded before script runs!!
  205.     inTutorial=true;
  206.     //centreView(commandCentre);
  207. //    centreViewPos(1472, 1984);            //centre so can see HQ and Oil - old values
  208. //    centreViewPos(3840, 4096);            //centre so can see HQ and Oil - new values Keith 2nd/12/98
  209.     centreViewPos(3531, 4045);            //centre so can see HQ and Oil - new values Keith 2nd/12/98 slightly to left of HQ
  210.  
  211.     setRadarZoom(2);
  212. // setScrollParams(15, 15, 48, 48);        // new limits set by Keith 2/12/98
  213.  
  214. setScrollParams(5, 5, 58, 58);        // new limits set by Keith 2/12/98
  215. //add short version of Mission briefing to list
  216.     //addMessage(MissionBrief, CAMP_MSG, 0, false);
  217.     gameLevel=0;
  218. //set up the reticule buttons
  219.     //addReticuleButton(OPTIONS);
  220.     addReticuleButton(CANCEL);
  221.     //addReticuleButton(BUILD);
  222.     removeReticuleButton(MANUFACTURE);
  223.     removeReticuleButton(RESEARCH);
  224.     removeReticuleButton(INTELMAP);
  225.     removeReticuleButton(DESIGN);
  226.     removeReticuleButton(BUILD);
  227.     removeReticuleButton(OPTIONS);
  228. //set starting power
  229.     setPowerLevel(startPower,0);
  230.  
  231. //moved by kev to here from research completed
  232.     makeComponentAvailable(viperBody, 0);
  233.     makeComponentAvailable(spade, 0);
  234.     makeComponentAvailable(wheeledProp, 0);
  235.     makeComponentAvailable(mg, 0);
  236.     setDefaultSensor(defaultSensor ,0);
  237.  
  238.     setStructureLimits(factory, 1, 0);
  239.     setStructureLimits(oilDerrick, 1, 0);
  240.     setStructureLimits(powerGen, 1, 0);
  241.     setStructureLimits(research, 1, 0);
  242.  
  243. //    playCDAudio( 1 );
  244.  
  245.     setEventTrigger( buildDerrick, tutorialTrigger);
  246.     setEventTrigger(initialisedEvent, inactive);
  247. }
  248.  
  249.  
  250. event buildDerrick(inactive)
  251. {
  252.     t=0;
  253.     enableStructure(oilDerrick,0);
  254.     addConsoleText(buildResEx, 0);
  255.     //addMessage(res1Msg, PROX_MSG, 0, false);
  256.     pause(10);        //pause(35);
  257.     playSound(SND_BUILD_RES_EX1, 0);
  258.     pause(30);
  259.     if (t<1)
  260.     {
  261.         t=1;
  262.         playSound(SND_BUILD_RES_EX2, 0);
  263.         //pause(40);
  264.         //playSound(SND_BUILD_RES_EX3, 0);
  265.     }
  266.     setEventTrigger(buildDerrick, inactive);
  267. }
  268.  
  269. event buildDerrick2(CALL_DROID_SELECTED, ref selDroid)
  270. {
  271.     setEventTrigger(buildDerrick2, inactive);
  272.     pause(10);
  273.     if (t<2)
  274.     {
  275.         t=2;
  276.         playSound(SND_BUILD_RES_EX3, 0);
  277.     }
  278. }
  279.  
  280.  
  281. event buildPowGen(CALL_RESEX_BUILT)
  282. {
  283.     //removeMessage(res1Msg, PROX_MSG, 0);
  284.     //selectDroidByID(constructorDroid, 0);
  285.     pause(30);
  286.     addConsoleText(buildPowerGenMsg, 0);
  287.     playSound(SND_BUILD_RES_EX4, 0);
  288.     pause(50);
  289.     if (t<11)
  290.     {
  291.         t=11;
  292.         playSound(SND_BUILD_POWERGEN2, 0);
  293.         pause(20);
  294.         addReticuleButton(BUILD);
  295. //flash the build reticule????????
  296.         flashOn(IDRET_BUILD);
  297.         enableStructure(powerGen,0);
  298.         setEventTrigger(buildPowGen2, buildlistTrig);    //To prevent early double clicking!!
  299.     }
  300.     setEventTrigger(buildPowGen, inactive);
  301. }
  302.  
  303. event buildPowGen2(inactive)
  304. {
  305.     flashOff(IDRET_BUILD);
  306.     pause(10);
  307.     if (t<13)
  308.     {
  309.         t=13;
  310.         playSound(SND_BUILD_POWERGEN4, 0);
  311.         setEventTrigger(buildPowGen3, buildgridTrig);    //To prevent early double clicking!!
  312.     }
  313.     setEventTrigger(buildPowGen2, inactive);
  314. }
  315.  
  316. event buildPowGen3(inactive)
  317. {
  318.     pause(10);
  319.     if (t<14)
  320.     {
  321.         t=14;
  322.         playSound(SND_BUILD_POWERGEN5, 0);
  323.     }
  324.     setEventTrigger(helpBuild, beingBuilt);
  325.     setEventTrigger(buildPowGen3, inactive);
  326. }
  327.  
  328.  
  329. event helpBuild(inactive)
  330. {
  331.     addConsoleText(increaseBuildRate, 0);
  332.     pause(10);        //pause(30);
  333.     if (t<15)
  334.     {
  335.         t=15;
  336.         playSound(SND_USE_2ND_CONST1, 0);
  337.         setEventTrigger(helpBuild1, droidSelTrig);
  338.         pause(35);
  339.     }
  340.     setEventTrigger(helpBuild, inactive);
  341. }
  342.  
  343. event helpBuild1(inactive)
  344. {
  345. //only when droid selected
  346.     if (t<17)
  347.     {
  348.         setEventTrigger(helpBuild2, droidHelpTrig2);
  349.     }
  350.     setEventTrigger(helpBuild1, inactive);
  351. }
  352.  
  353. event helpBuild2(inactive)
  354. {
  355. //only if selected droid is idle!!
  356.     pause(10);
  357.     if (t<17)
  358.     {
  359.         t=17;
  360.         playSound(SND_USE_2ND_CONST2, 0);
  361.         setEventTrigger(helpBuild3, droidHelpTrig);
  362.     }
  363.     setEventTrigger(helpBuild2, inactive);
  364. }
  365.  
  366. event helpBuild3(inactive)
  367. {
  368. //ordered to help build??????
  369.     pause(10);
  370.     if (t<18)
  371.     {
  372.         t=18;
  373.         pause(20);
  374.         playSound(SND_USE_2ND_CONST3, 0);
  375.     }
  376.     setEventTrigger(helpBuild3, inactive);
  377. }
  378.  
  379.  
  380. event scoutWest(CALL_POWERGEN_BUILT)
  381. {
  382.     t=20;
  383.     addConsoleText(scoutMsg, 0);
  384.     //addMessage(art1Msg, PROX_MSG, 0, false);
  385.     pause(30);        //pause(35);
  386.     playSound(SND_SCOUT_TO_WEST, 0);
  387.     pause(30);        //pause(35);
  388.     hiddenArtefact = addFeature(crate, art1X, art1Y);
  389.     setEventTrigger(artFound, inRange);
  390.     setEventTrigger(scoutWest, inactive);
  391. }
  392.  
  393. event artFound(inactive)
  394. {
  395.     t=30;
  396.     addConsoleText(artefactRecoverMsg, 0);
  397.     enableResearch(artefact, 0);
  398.     pause(10);        //pause(35);
  399.     playSound(SND_RECOVER_ART, 0);
  400.     setEventTrigger(buildResearch, nextTo);
  401.     setEventTrigger(artFound, inactive);
  402. }
  403.  
  404. event buildResearch(inactive)
  405. {
  406.     //removeMessage(art1Msg, PROX_MSG, 0);
  407.     destroyFeature(hiddenArtefact);
  408.     enableStructure(research,0);
  409.     addConsoleText(buildResearchMsg, 0);
  410. //    pause(30);        //pause(35);
  411. //    if (t<40)
  412. //    {
  413. //        t=40;
  414. //        playSound(SND_ARTIFACT_DIS, 0);
  415. //        //setEventTrigger(researchArt, researchBuilt);
  416. //    }
  417.     pause(10);
  418.     if (t<41)
  419.     {
  420.         t=41;
  421.         playSound(SND_CLICK_BUILD, 0);
  422.         setEventTrigger(buildResearch2,buildlistTrig);
  423. //flash the build reticule
  424.         flashOn(IDRET_BUILD);
  425.     }
  426.     setEventTrigger(buildResearch, inactive);
  427. }
  428.  
  429. event buildResearch2(inactive)
  430. {
  431. //build icon selected?
  432.     flashOff(IDRET_BUILD);
  433.     pause(10);
  434.     if (t<42)
  435.     {
  436.         t=42;
  437.         playSound(SND_BUILD_RES_2, 0);
  438.     }
  439.     setEventTrigger(buildResearch2, inactive);
  440. }
  441.  
  442. event researchInProg(researchBeingBuilt)
  443. {
  444. //being built?
  445.     pause(10);
  446.     if (t<43)
  447.     {
  448.         t=43;
  449.         playSound(SND_BUILD_RES_3, 0);
  450.     }
  451.     setEventTrigger(researchInProg, inactive);
  452. }
  453.  
  454. event researchArt(CALL_RESEARCH_BUILT)
  455. {
  456.  
  457.     researchStruc=getStructure(research, 0);    //get factory ID so can test later!
  458.     addConsoleText(researchArteMsg, 0);
  459.     pause(30);        //pause(35);
  460.     if (t<50)
  461.     {
  462.         t=50;
  463.         playSound(SND_RES_ART2, 0);
  464.         pause(20);
  465.         addReticuleButton(RESEARCH);
  466.         //setEventTrigger(designWarDroid, researchDone);
  467.         setEventTrigger(researchArt2, researchlistTrig);
  468. //flash the research reticule
  469.         flashOn(IDRET_RESEARCH);
  470.     }
  471.     setEventTrigger(researchArt, inactive);
  472. }
  473.  
  474. event researchArt2(inactive)
  475. {
  476. //research icon selected
  477.     flashOff(IDRET_RESEARCH);
  478.     pause(10);
  479.     if (t<51)
  480.     {
  481.         t=51;
  482.  
  483.         playSound(SND_RES_ART3, 0);
  484.         setEventTrigger(researchArt3, researchartTrig);
  485.     }
  486.     setEventTrigger(researchArt2, inactive);
  487. }
  488.  
  489. event researchArt3(inactive)
  490. {
  491. //artifact selected?????
  492.     pause(10);
  493.     if (t<52)
  494.     {
  495.         t=52;
  496.         playSound(SND_RES_ART4, 0);
  497.     }
  498.     setEventTrigger(researchArt3, inactive);
  499. }
  500.  
  501. event designWarDroid(CALL_RESEARCHCOMPLETED)
  502. {
  503.     addConsoleText(designMsg, 0);
  504.     //makeComponentAvailable(mg, 0); //already done at start!
  505.     pause(30);
  506.     if (t<60)
  507.     {
  508.         t=60;
  509.         playSound(SND_DESIGN_WAR, 0);
  510.         pause(20);
  511.         addReticuleButton(DESIGN);
  512. //flash the research reticule
  513.         flashOn(IDRET_DESIGN);
  514.         setEventTrigger(designWarDroid2, desTrig);
  515.         //setEventTrigger(buildFactory, droidDesigned);
  516.     }
  517.     setEventTrigger(designWarDroid, inactive);
  518. }
  519.  
  520. event designWarDroid2(inactive)
  521. {
  522.     addConsoleText(des_msg0, 0);
  523.     //playSound to go here
  524.     setEventTrigger(designWarDroid3, droidDesigned);
  525.     setEventTrigger(designWarDroid2, inactive);
  526.     t=61;
  527.     flashOff(IDRET_DESIGN);
  528. }
  529.  
  530. event design1(newdesTrig)
  531. {
  532.     addConsoleText(des_msg1, 0);    //choose Weapon
  533.     //playSound to go here
  534.     setEventTrigger(design1, inactive);
  535. }
  536.  
  537. event design2(turretTrig)
  538. {
  539.     addConsoleText(des_msg2, 0);
  540.     //playSound to go here
  541.     setEventTrigger(design2, inactive);
  542. }
  543.  
  544. event design3(turretTrig2)
  545. {
  546.     addConsoleText(des_msg3, 0);    //choose Body
  547.     //playSound to go here
  548.     setEventTrigger(design3, inactive);
  549. }
  550.  
  551. event design4(bodyTrig)
  552. {
  553.     addConsoleText(des_msg4, 0);
  554.     //playSound to go here
  555.     setEventTrigger(design4, inactive);
  556. }
  557.  
  558. event design5(bodyTrig2)
  559. {
  560.     addConsoleText(des_msg5, 0);    //choose Propulsion
  561.     //playSound to go here
  562.     setEventTrigger(design5, inactive);
  563. }
  564.  
  565. event design6(propTrig)
  566. {
  567.     addConsoleText(des_msg6, 0);
  568.     //playSound to go here
  569.     setEventTrigger(design6, inactive);
  570. }
  571.  
  572. event design7(propTrig2)
  573. {
  574.     addConsoleText(des_msg7, 0);    //finished design
  575.     //flashOn(CANCEL);    //this doesn't flash
  576.     flashOn(MANUFACTURE);    //use this instead
  577.     flashOn(RESEARCH);
  578.     flashOn(OPTIONS);
  579.     flashOn(INTELMAP);
  580.     flashOn(DESIGN);
  581.     flashOn(BUILD);
  582.  
  583.     //playSound to go here
  584.     setEventTrigger(design7, inactive);
  585. }
  586.  
  587. event designWarDroid3(inactive)
  588. {
  589.     setEventTrigger(buildFactory, desQuit);
  590.     setEventTrigger(designWarDroid3, inactive);
  591.     t=62;
  592. }
  593.  
  594. event buildFactory(CALL_DROIDDESIGNED)
  595. {
  596.     //flashOff(CANCEL);
  597.     flashOff(MANUFACTURE);    //use this instead
  598.     flashOff(RESEARCH);
  599.     flashOff(OPTIONS);
  600.     flashOff(INTELMAP);
  601.     flashOff(DESIGN);
  602.     flashOff(BUILD);
  603.  
  604. //no longer in design screen and droid designed
  605.     enableStructure(factory,0);
  606.     addConsoleText(buildFactoryMsg, 0);
  607.     pause(10);
  608.     if (t<70)
  609.     {
  610.         t=70;
  611.         playSound(SND_BUILD_FAC1, 0);
  612.         playSound(SND_BUILD_FAC2, 0);
  613.         setEventTrigger(buildFactory2, buildlistTrig);
  614. //flash the build reticule
  615.         flashOn(IDRET_BUILD);
  616.         //setEventTrigger(manuDroid, factoryBuilt);
  617.     }
  618.     setEventTrigger(buildFactory, inactive);
  619. }
  620.  
  621. event buildFactory2(inactive)
  622. {
  623. //build icon selected
  624.     flashOff(IDRET_BUILD);
  625.     pause(10);
  626.     if (t<71)
  627.     {
  628.         t=71;
  629.         playSound(SND_BUILD_FAC3, 0);
  630.     }
  631.     setEventTrigger(buildFactory2, inactive);
  632. }
  633.  
  634. event moveAssPoint(factoryBeingBuilt)
  635. {
  636.     pause(10);        //pause(35);
  637.     if (t<=80)
  638.     {
  639.         t=80;
  640.         addConsoleText(assignDPMsg, 0);    //same as build a droid!
  641.         playSound(SND_ASSIGN_DELPOINT, 0);
  642.  
  643.     }
  644.     setEventTrigger(moveAssPoint, inactive);
  645. }
  646. event manuDroid(CALL_FACTORY_BUILT)
  647. {
  648.     factoryStruc=getStructure(factory, 0);    //get factory ID so can test later!
  649.     pause(30);
  650.     if (t<90)
  651.     {
  652.         t=90;
  653.         addConsoleText(buildDroidMsg, 0);
  654.         pause(10);
  655.         playSound(SND_MANU_WAR2, 0);
  656.         pause(10);
  657.         addReticuleButton(MANUFACTURE);
  658.         setEventTrigger(manuDroid2, manulistTrig);
  659. //flash the manufacture reticule
  660.         flashOn(IDRET_MANUFACTURE);
  661.     }
  662.     setEventTrigger(manuDroid, inactive);
  663. }
  664.  
  665. //extra event to give player feedback that hit correct button
  666. //a wav would be nice also
  667. event buildFeedback(inactive)
  668. {
  669.     addConsoleText(bld_msg1, 0);
  670.     setEventTrigger(buildFeedback, inactive);
  671. }
  672.  
  673. event manuDroid2(inactive)
  674. {
  675. //manufacture icon selected
  676.     flashOff(IDRET_MANUFACTURE);
  677.     pause(10);
  678.     if (t<91)
  679.     {
  680.         t=91;
  681.         playSound(SND_MANU_WAR3, 0);
  682.     }
  683.     setEventTrigger(buildFeedback, prodrunTrig2);
  684.     setEventTrigger(manuDroid2, inactive);
  685. }
  686.  
  687. /* Disabled until this is sorted out
  688. event productionRun (CALL_DROIDBUILT)
  689. {
  690.     addConsoleText(prodRunMsg, 0);
  691.     pause(20);
  692.     if (t<100)
  693.     {
  694.         t=100;
  695.         playSound(SND_SET_PROD2, 0);
  696.         setEventTrigger(productionRun2, manurunTrig);
  697.     }
  698.     setEventTrigger(productionRun, inactive);
  699. }
  700.  
  701.  
  702. event productionRun2 (inactive)
  703. {
  704. //production run slider set >1
  705.     pause(10);
  706.     if (t<102)
  707.     {
  708.         t=102;
  709.         playSound(SND_SET_PROD4, 0);
  710.         setEventTrigger(productionRun3, prodrunTrig2);
  711.     }
  712.     setEventTrigger(productionRun2, inactive);
  713. }
  714. event productionRun3 (inactive)
  715. {
  716. //droid selected
  717.     pause(20);
  718.     if (t<=103)
  719.     {
  720.         t=103;
  721.         playSound(SND_SET_PROD3, 0);
  722.     }
  723.     setEventTrigger(productionRun3, inactive);
  724. }
  725. */
  726.  
  727. event loadNextLev(inactive)
  728. {
  729.      setEventTrigger(loadNextLev, inactive);
  730.     addReticuleButton (INTELMAP);
  731.     addReticuleButton (OPTIONS);
  732.     setStructureLimits (powerGen,5,0);
  733.     setStructureLimits (oilDerrick,100,0);
  734.     setStructureLimits (research,5,0);
  735.     setStructureLimits (factory,5,0);
  736.     addConsoleText(wellDoneMsg, 0);
  737.     pause(10);
  738.     playSound(SND_MISSION_SUCCESS, 0);
  739.     pause(50);
  740.     tutorialEnd();
  741.     gameOver(true);
  742.     //gameLevel=1;        //flag next map scripts available
  743.     //startMission(CAMP_EXPAND, NextLev);
  744.  
  745. }
  746.  
  747. event endTutorial(runDone)
  748. {
  749.     t=110;
  750.     pause(20);                //wait for speech
  751.      setEventTrigger(endTutorial, inactive);
  752.      setEventTrigger(loadNextLev, endVid);
  753.     //playVideo(factoryRPL,0);        //play factory sequence
  754. }
  755.  
  756.  
  757. event loadGames(CALL_MISSION_START)        //cheat button ctrl M
  758. {
  759.     //playSound(SND_ERAD_SCAVANGERS, 0);
  760.     makeComponentAvailable(viperBody, 0);
  761.     makeComponentAvailable(spade, 0);
  762.     makeComponentAvailable(wheeledProp, 0);
  763.     makeComponentAvailable(mg, 0);
  764.     n=4;
  765.      //setEventTrigger(endTutorial, runDone);
  766.     setEventTrigger(loadGames, inactive);
  767. }
  768.  
  769. event numDroids(CALL_DROIDBUILT)
  770. {
  771.     n=n+1;
  772. }
  773.